package generic.erase.demo5_ca

fun main() {
    val list1: List<*> = ArrayList<Any>()
    val list2: List<*> = ArrayList<String>()
    val list3: List<*> = ArrayList<Double>()

    val list1e: List<out Any> = ArrayList<Any>()
    val list2e: List<out Any> = ArrayList<String>()
    val list3e: List<out Any> = ArrayList<Double>()

    // 不写也可以，是不是Derry讲错了？ 是因为内置增加了 out E   泛型E 会泛型擦除 Object
    val list1et: List< Any> = ArrayList<Any>()
    val list2et: List< Any> = ArrayList<String>()
    val list3et: List< Any> = ArrayList<Double>()

    // 最终的本质  翻译Java：  ? extends Object
}